import logging
import uuid

class ULogger:
    def __init__(self,filename,level: int = logging.INFO):
        self.logger = logging.getLogger(filename)
        self.logger.setLevel(level)
        file_handler=logging.FileHandler(filename,mode='w')
        formatter="%(asctime)s: [quant_rknn] %(filename)sline:%(lineno)d %(message)s"
        file_handler.setFormatter(logging.Formatter(formatter))
        file_handler.setLevel(level)
        console_handler=logging.StreamHandler()
        console_handler.setLevel(level)
        console_handler.setFormatter(logging.Formatter(formatter))
        self.logger.addHandler(file_handler)
        self.logger.addHandler(console_handler)

    def info(self,msg):
        self.logger.info(msg)

    def debug(self,msg):
        self.logger.debug(msg)

    def warning(self,msg):
        self.logger.warning(msg)

    def error(self,msg):
        self.logger.error(msg)

    def critical(self,msg):
        self.logger.critical(msg)